//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(+0.0 << '');
write(+0.0 << 0xa);
write(+0.0 << 04);
write(+0.0 << 'hello');
write(+0.0 << 'hel' + 'lo');
write(+0.0 << String(''));
write(+0.0 << String('hello'));
write(+0.0 << String('h' + 'ello'));
write(+0.0 << new String(''));
write(+0.0 << new String('hello'));
write(+0.0 << new String('he' + 'llo'));
write(+0.0 << new Object());
write(+0.0 << new Object());
write(+0.0 << [1, 2, 3]);
write(+0.0 << [1 ,2 , 3]);
write(+0.0 << new Array(3));
write(+0.0 << Array(3));
write(+0.0 << new Array(1 ,2 ,3));
write(+0.0 << Array(1));
write(+0.0 << foo);
write(1 << undefined);
write(1 << null);
write(1 << true);
write(1 << false);
write(1 << Boolean(true));
write(1 << Boolean(false));
write(1 << new Boolean(true));
write(1 << new Boolean(false));
write(1 << NaN);
write(1 << +0);
write(1 << -0);
write(1 << 0);
write(1 << 0.0);
write(1 << -0.0);
write(1 << +0.0);
write(1 << 1);
write(1 << 10);
write(1 << 10.0);
write(1 << 10.1);
write(1 << -1);
write(1 << -10);
write(1 << -10.0);
write(1 << -10.1);
write(1 << Number.MAX_VALUE);
write(1 << Number.MIN_VALUE);
write(1 << Number.NaN);
write(1 << Number.POSITIVE_INFINITY);
write(1 << Number.NEGATIVE_INFINITY);
write(1 << new Number(NaN));
write(1 << new Number(+0));
write(1 << new Number(-0));
write(1 << new Number(0));
write(1 << new Number(0.0));
write(1 << new Number(-0.0));
write(1 << new Number(+0.0));
write(1 << new Number(1));
write(1 << new Number(10));
write(1 << new Number(10.0));
write(1 << new Number(10.1));
write(1 << new Number(-1));
write(1 << new Number(-10));
write(1 << new Number(-10.0));
write(1 << new Number(-10.1));
write(1 << new Number(Number.MAX_VALUE));
write(1 << new Number(Number.MIN_VALUE));
write(1 << new Number(Number.NaN));
write(1 << new Number(Number.POSITIVE_INFINITY));
write(1 << new Number(Number.NEGATIVE_INFINITY));
write(1 << '');
write(1 << 0xa);
write(1 << 04);
write(1 << 'hello');
write(1 << 'hel' + 'lo');
write(1 << String(''));
write(1 << String('hello'));
write(1 << String('h' + 'ello'));
write(1 << new String(''));
write(1 << new String('hello'));
write(1 << new String('he' + 'llo'));
write(1 << new Object());
write(1 << new Object());
write(1 << [1, 2, 3]);
write(1 << [1 ,2 , 3]);
write(1 << new Array(3));
write(1 << Array(3));
write(1 << new Array(1 ,2 ,3));
write(1 << Array(1));
write(1 << foo);
write(10 << undefined);
write(10 << null);
write(10 << true);
write(10 << false);
write(10 << Boolean(true));
write(10 << Boolean(false));
write(10 << new Boolean(true));
write(10 << new Boolean(false));
write(10 << NaN);
write(10 << +0);
write(10 << -0);
write(10 << 0);
write(10 << 0.0);
write(10 << -0.0);
write(10 << +0.0);
write(10 << 1);
write(10 << 10);
write(10 << 10.0);
write(10 << 10.1);
write(10 << -1);
write(10 << -10);
write(10 << -10.0);
write(10 << -10.1);
write(10 << Number.MAX_VALUE);
write(10 << Number.MIN_VALUE);
write(10 << Number.NaN);
write(10 << Number.POSITIVE_INFINITY);
write(10 << Number.NEGATIVE_INFINITY);
write(10 << new Number(NaN));
write(10 << new Number(+0));
write(10 << new Number(-0));
write(10 << new Number(0));
write(10 << new Number(0.0));
write(10 << new Number(-0.0));
write(10 << new Number(+0.0));
write(10 << new Number(1));
write(10 << new Number(10));
write(10 << new Number(10.0));
write(10 << new Number(10.1));
write(10 << new Number(-1));
write(10 << new Number(-10));
write(10 << new Number(-10.0));
write(10 << new Number(-10.1));
write(10 << new Number(Number.MAX_VALUE));
write(10 << new Number(Number.MIN_VALUE));
write(10 << new Number(Number.NaN));
write(10 << new Number(Number.POSITIVE_INFINITY));
write(10 << new Number(Number.NEGATIVE_INFINITY));
write(10 << '');
write(10 << 0xa);
write(10 << 04);
write(10 << 'hello');
write(10 << 'hel' + 'lo');
write(10 << String(''));
write(10 << String('hello'));
write(10 << String('h' + 'ello'));
write(10 << new String(''));
write(10 << new String('hello'));
write(10 << new String('he' + 'llo'));
write(10 << new Object());
write(10 << new Object());
write(10 << [1, 2, 3]);
write(10 << [1 ,2 , 3]);
write(10 << new Array(3));
write(10 << Array(3));
write(10 << new Array(1 ,2 ,3));
write(10 << Array(1));
write(10 << foo);
write(10.0 << undefined);
write(10.0 << null);
write(10.0 << true);
write(10.0 << false);
write(10.0 << Boolean(true));
write(10.0 << Boolean(false));
write(10.0 << new Boolean(true));
write(10.0 << new Boolean(false));
write(10.0 << NaN);
write(10.0 << +0);
write(10.0 << -0);
write(10.0 << 0);
write(10.0 << 0.0);
write(10.0 << -0.0);
write(10.0 << +0.0);
write(10.0 << 1);
write(10.0 << 10);
write(10.0 << 10.0);
write(10.0 << 10.1);
write(10.0 << -1);
write(10.0 << -10);
write(10.0 << -10.0);
write(10.0 << -10.1);
write(10.0 << Number.MAX_VALUE);
write(10.0 << Number.MIN_VALUE);
write(10.0 << Number.NaN);
write(10.0 << Number.POSITIVE_INFINITY);
write(10.0 << Number.NEGATIVE_INFINITY);
write(10.0 << new Number(NaN));
write(10.0 << new Number(+0));
write(10.0 << new Number(-0));
write(10.0 << new Number(0));
write(10.0 << new Number(0.0));
write(10.0 << new Number(-0.0));
write(10.0 << new Number(+0.0));
write(10.0 << new Number(1));
write(10.0 << new Number(10));
write(10.0 << new Number(10.0));
write(10.0 << new Number(10.1));
write(10.0 << new Number(-1));
write(10.0 << new Number(-10));
write(10.0 << new Number(-10.0));
write(10.0 << new Number(-10.1));
write(10.0 << new Number(Number.MAX_VALUE));
write(10.0 << new Number(Number.MIN_VALUE));
write(10.0 << new Number(Number.NaN));
write(10.0 << new Number(Number.POSITIVE_INFINITY));
write(10.0 << new Number(Number.NEGATIVE_INFINITY));
write(10.0 << '');
write(10.0 << 0xa);
write(10.0 << 04);
write(10.0 << 'hello');
write(10.0 << 'hel' + 'lo');
write(10.0 << String(''));
write(10.0 << String('hello'));
write(10.0 << String('h' + 'ello'));
write(10.0 << new String(''));
write(10.0 << new String('hello'));
write(10.0 << new String('he' + 'llo'));
write(10.0 << new Object());
write(10.0 << new Object());
write(10.0 << [1, 2, 3]);
write(10.0 << [1 ,2 , 3]);
write(10.0 << new Array(3));
write(10.0 << Array(3));
write(10.0 << new Array(1 ,2 ,3));
write(10.0 << Array(1));
write(10.0 << foo);
write(10.1 << undefined);
write(10.1 << null);
write(10.1 << true);
write(10.1 << false);
write(10.1 << Boolean(true));
write(10.1 << Boolean(false));
write(10.1 << new Boolean(true));
write(10.1 << new Boolean(false));
write(10.1 << NaN);
write(10.1 << +0);
write(10.1 << -0);
write(10.1 << 0);
write(10.1 << 0.0);
write(10.1 << -0.0);
write(10.1 << +0.0);
write(10.1 << 1);
write(10.1 << 10);
write(10.1 << 10.0);
write(10.1 << 10.1);
write(10.1 << -1);
write(10.1 << -10);
write(10.1 << -10.0);
write(10.1 << -10.1);
write(10.1 << Number.MAX_VALUE);
write(10.1 << Number.MIN_VALUE);
write(10.1 << Number.NaN);
write(10.1 << Number.POSITIVE_INFINITY);
write(10.1 << Number.NEGATIVE_INFINITY);
write(10.1 << new Number(NaN));
write(10.1 << new Number(+0));
write(10.1 << new Number(-0));
write(10.1 << new Number(0));
write(10.1 << new Number(0.0));
write(10.1 << new Number(-0.0));
write(10.1 << new Number(+0.0));
write(10.1 << new Number(1));
write(10.1 << new Number(10));
write(10.1 << new Number(10.0));
write(10.1 << new Number(10.1));
write(10.1 << new Number(-1));
write(10.1 << new Number(-10));
write(10.1 << new Number(-10.0));
write(10.1 << new Number(-10.1));
write(10.1 << new Number(Number.MAX_VALUE));
write(10.1 << new Number(Number.MIN_VALUE));
write(10.1 << new Number(Number.NaN));
write(10.1 << new Number(Number.POSITIVE_INFINITY));
write(10.1 << new Number(Number.NEGATIVE_INFINITY));
write(10.1 << '');
write(10.1 << 0xa);
write(10.1 << 04);
write(10.1 << 'hello');
write(10.1 << 'hel' + 'lo');
write(10.1 << String(''));
write(10.1 << String('hello'));
write(10.1 << String('h' + 'ello'));
write(10.1 << new String(''));
write(10.1 << new String('hello'));
write(10.1 << new String('he' + 'llo'));
write(10.1 << new Object());
write(10.1 << new Object());
write(10.1 << [1, 2, 3]);
write(10.1 << [1 ,2 , 3]);
write(10.1 << new Array(3));
write(10.1 << Array(3));
write(10.1 << new Array(1 ,2 ,3));
write(10.1 << Array(1));
write(10.1 << foo);
write(-1 << undefined);
write(-1 << null);
write(-1 << true);
write(-1 << false);
write(-1 << Boolean(true));
write(-1 << Boolean(false));
write(-1 << new Boolean(true));
write(-1 << new Boolean(false));
write(-1 << NaN);
write(-1 << +0);
write(-1 << -0);
write(-1 << 0);
write(-1 << 0.0);
write(-1 << -0.0);
write(-1 << +0.0);
write(-1 << 1);
write(-1 << 10);
write(-1 << 10.0);
write(-1 << 10.1);
write(-1 << -1);
write(-1 << -10);
write(-1 << -10.0);
write(-1 << -10.1);
write(-1 << Number.MAX_VALUE);
write(-1 << Number.MIN_VALUE);
write(-1 << Number.NaN);
write(-1 << Number.POSITIVE_INFINITY);
write(-1 << Number.NEGATIVE_INFINITY);
write(-1 << new Number(NaN));
write(-1 << new Number(+0));
write(-1 << new Number(-0));
write(-1 << new Number(0));
write(-1 << new Number(0.0));
write(-1 << new Number(-0.0));
write(-1 << new Number(+0.0));
write(-1 << new Number(1));
write(-1 << new Number(10));
write(-1 << new Number(10.0));
write(-1 << new Number(10.1));
write(-1 << new Number(-1));
write(-1 << new Number(-10));
write(-1 << new Number(-10.0));
write(-1 << new Number(-10.1));
write(-1 << new Number(Number.MAX_VALUE));
write(-1 << new Number(Number.MIN_VALUE));
write(-1 << new Number(Number.NaN));
write(-1 << new Number(Number.POSITIVE_INFINITY));
write(-1 << new Number(Number.NEGATIVE_INFINITY));
write(-1 << '');
write(-1 << 0xa);
write(-1 << 04);
write(-1 << 'hello');
write(-1 << 'hel' + 'lo');
write(-1 << String(''));
write(-1 << String('hello'));
write(-1 << String('h' + 'ello'));
write(-1 << new String(''));
write(-1 << new String('hello'));
write(-1 << new String('he' + 'llo'));
write(-1 << new Object());
write(-1 << new Object());
write(-1 << [1, 2, 3]);
write(-1 << [1 ,2 , 3]);
write(-1 << new Array(3));
write(-1 << Array(3));
write(-1 << new Array(1 ,2 ,3));
write(-1 << Array(1));
write(-1 << foo);
write(-10 << undefined);
write(-10 << null);
write(-10 << true);
write(-10 << false);
write(-10 << Boolean(true));
write(-10 << Boolean(false));
write(-10 << new Boolean(true));
write(-10 << new Boolean(false));
write(-10 << NaN);
write(-10 << +0);
write(-10 << -0);
write(-10 << 0);
write(-10 << 0.0);
write(-10 << -0.0);
write(-10 << +0.0);
write(-10 << 1);
write(-10 << 10);
write(-10 << 10.0);
write(-10 << 10.1);
write(-10 << -1);
write(-10 << -10);
write(-10 << -10.0);
write(-10 << -10.1);
write(-10 << Number.MAX_VALUE);
write(-10 << Number.MIN_VALUE);
write(-10 << Number.NaN);
write(-10 << Number.POSITIVE_INFINITY);
write(-10 << Number.NEGATIVE_INFINITY);
write(-10 << new Number(NaN));
write(-10 << new Number(+0));
write(-10 << new Number(-0));
write(-10 << new Number(0));
write(-10 << new Number(0.0));
write(-10 << new Number(-0.0));
write(-10 << new Number(+0.0));
write(-10 << new Number(1));
write(-10 << new Number(10));
write(-10 << new Number(10.0));
write(-10 << new Number(10.1));
write(-10 << new Number(-1));
write(-10 << new Number(-10));
write(-10 << new Number(-10.0));
write(-10 << new Number(-10.1));
write(-10 << new Number(Number.MAX_VALUE));
write(-10 << new Number(Number.MIN_VALUE));
write(-10 << new Number(Number.NaN));
write(-10 << new Number(Number.POSITIVE_INFINITY));
write(-10 << new Number(Number.NEGATIVE_INFINITY));
write(-10 << '');
write(-10 << 0xa);
write(-10 << 04);
write(-10 << 'hello');
write(-10 << 'hel' + 'lo');
write(-10 << String(''));
write(-10 << String('hello'));
write(-10 << String('h' + 'ello'));
write(-10 << new String(''));
write(-10 << new String('hello'));
write(-10 << new String('he' + 'llo'));
write(-10 << new Object());
write(-10 << new Object());
write(-10 << [1, 2, 3]);
write(-10 << [1 ,2 , 3]);
write(-10 << new Array(3));
write(-10 << Array(3));
write(-10 << new Array(1 ,2 ,3));
write(-10 << Array(1));
write(-10 << foo);
write(-10.0 << undefined);
write(-10.0 << null);
write(-10.0 << true);
write(-10.0 << false);
write(-10.0 << Boolean(true));
write(-10.0 << Boolean(false));
write(-10.0 << new Boolean(true));
write(-10.0 << new Boolean(false));
write(-10.0 << NaN);
write(-10.0 << +0);
write(-10.0 << -0);
write(-10.0 << 0);
write(-10.0 << 0.0);
write(-10.0 << -0.0);
write(-10.0 << +0.0);
write(-10.0 << 1);
write(-10.0 << 10);
write(-10.0 << 10.0);
write(-10.0 << 10.1);
write(-10.0 << -1);
write(-10.0 << -10);
write(-10.0 << -10.0);
write(-10.0 << -10.1);
write(-10.0 << Number.MAX_VALUE);
write(-10.0 << Number.MIN_VALUE);
write(-10.0 << Number.NaN);
write(-10.0 << Number.POSITIVE_INFINITY);
write(-10.0 << Number.NEGATIVE_INFINITY);
write(-10.0 << new Number(NaN));
write(-10.0 << new Number(+0));
write(-10.0 << new Number(-0));
write(-10.0 << new Number(0));
write(-10.0 << new Number(0.0));
write(-10.0 << new Number(-0.0));
write(-10.0 << new Number(+0.0));
write(-10.0 << new Number(1));
write(-10.0 << new Number(10));
write(-10.0 << new Number(10.0));
write(-10.0 << new Number(10.1));
write(-10.0 << new Number(-1));
write(-10.0 << new Number(-10));
write(-10.0 << new Number(-10.0));
write(-10.0 << new Number(-10.1));
write(-10.0 << new Number(Number.MAX_VALUE));
write(-10.0 << new Number(Number.MIN_VALUE));
write(-10.0 << new Number(Number.NaN));
write(-10.0 << new Number(Number.POSITIVE_INFINITY));
write(-10.0 << new Number(Number.NEGATIVE_INFINITY));
write(-10.0 << '');
write(-10.0 << 0xa);
write(-10.0 << 04);
write(-10.0 << 'hello');
write(-10.0 << 'hel' + 'lo');
write(-10.0 << String(''));
write(-10.0 << String('hello'));
write(-10.0 << String('h' + 'ello'));
write(-10.0 << new String(''));
write(-10.0 << new String('hello'));
write(-10.0 << new String('he' + 'llo'));
write(-10.0 << new Object());
write(-10.0 << new Object());
write(-10.0 << [1, 2, 3]);
write(-10.0 << [1 ,2 , 3]);
write(-10.0 << new Array(3));
write(-10.0 << Array(3));
write(-10.0 << new Array(1 ,2 ,3));
write(-10.0 << Array(1));
write(-10.0 << foo);
write(-10.1 << undefined);
write(-10.1 << null);
write(-10.1 << true);
write(-10.1 << false);
write(-10.1 << Boolean(true));
write(-10.1 << Boolean(false));
write(-10.1 << new Boolean(true));
write(-10.1 << new Boolean(false));
write(-10.1 << NaN);
write(-10.1 << +0);
write(-10.1 << -0);
write(-10.1 << 0);
write(-10.1 << 0.0);
write(-10.1 << -0.0);
write(-10.1 << +0.0);
write(-10.1 << 1);
write(-10.1 << 10);
write(-10.1 << 10.0);
write(-10.1 << 10.1);
write(-10.1 << -1);
write(-10.1 << -10);
write(-10.1 << -10.0);
write(-10.1 << -10.1);
write(-10.1 << Number.MAX_VALUE);
write(-10.1 << Number.MIN_VALUE);
write(-10.1 << Number.NaN);
write(-10.1 << Number.POSITIVE_INFINITY);
write(-10.1 << Number.NEGATIVE_INFINITY);
write(-10.1 << new Number(NaN));
write(-10.1 << new Number(+0));
write(-10.1 << new Number(-0));
write(-10.1 << new Number(0));
write(-10.1 << new Number(0.0));
write(-10.1 << new Number(-0.0));
write(-10.1 << new Number(+0.0));
write(-10.1 << new Number(1));
write(-10.1 << new Number(10));
write(-10.1 << new Number(10.0));
write(-10.1 << new Number(10.1));
write(-10.1 << new Number(-1));
write(-10.1 << new Number(-10));
write(-10.1 << new Number(-10.0));
write(-10.1 << new Number(-10.1));
write(-10.1 << new Number(Number.MAX_VALUE));
write(-10.1 << new Number(Number.MIN_VALUE));
write(-10.1 << new Number(Number.NaN));
write(-10.1 << new Number(Number.POSITIVE_INFINITY));
write(-10.1 << new Number(Number.NEGATIVE_INFINITY));
write(-10.1 << '');
write(-10.1 << 0xa);
write(-10.1 << 04);
write(-10.1 << 'hello');
write(-10.1 << 'hel' + 'lo');
write(-10.1 << String(''));
write(-10.1 << String('hello'));
write(-10.1 << String('h' + 'ello'));
write(-10.1 << new String(''));
write(-10.1 << new String('hello'));
write(-10.1 << new String('he' + 'llo'));
write(-10.1 << new Object());
write(-10.1 << new Object());
write(-10.1 << [1, 2, 3]);
write(-10.1 << [1 ,2 , 3]);
write(-10.1 << new Array(3));
write(-10.1 << Array(3));
write(-10.1 << new Array(1 ,2 ,3));
write(-10.1 << Array(1));
write(-10.1 << foo);
write(Number.MAX_VALUE << undefined);
write(Number.MAX_VALUE << null);
write(Number.MAX_VALUE << true);
write(Number.MAX_VALUE << false);
write(Number.MAX_VALUE << Boolean(true));
write(Number.MAX_VALUE << Boolean(false));
write(Number.MAX_VALUE << new Boolean(true));
write(Number.MAX_VALUE << new Boolean(false));
write(Number.MAX_VALUE << NaN);
write(Number.MAX_VALUE << +0);
write(Number.MAX_VALUE << -0);
write(Number.MAX_VALUE << 0);
write(Number.MAX_VALUE << 0.0);
write(Number.MAX_VALUE << -0.0);
write(Number.MAX_VALUE << +0.0);
write(Number.MAX_VALUE << 1);
write(Number.MAX_VALUE << 10);
write(Number.MAX_VALUE << 10.0);
write(Number.MAX_VALUE << 10.1);
write(Number.MAX_VALUE << -1);
write(Number.MAX_VALUE << -10);
write(Number.MAX_VALUE << -10.0);
write(Number.MAX_VALUE << -10.1);
write(Number.MAX_VALUE << Number.MAX_VALUE);
write(Number.MAX_VALUE << Number.MIN_VALUE);
write(Number.MAX_VALUE << Number.NaN);
write(Number.MAX_VALUE << Number.POSITIVE_INFINITY);
write(Number.MAX_VALUE << Number.NEGATIVE_INFINITY);
write(Number.MAX_VALUE << new Number(NaN));
write(Number.MAX_VALUE << new Number(+0));
write(Number.MAX_VALUE << new Number(-0));
write(Number.MAX_VALUE << new Number(0));
write(Number.MAX_VALUE << new Number(0.0));
write(Number.MAX_VALUE << new Number(-0.0));
write(Number.MAX_VALUE << new Number(+0.0));
write(Number.MAX_VALUE << new Number(1));
write(Number.MAX_VALUE << new Number(10));
write(Number.MAX_VALUE << new Number(10.0));
write(Number.MAX_VALUE << new Number(10.1));
write(Number.MAX_VALUE << new Number(-1));
write(Number.MAX_VALUE << new Number(-10));
write(Number.MAX_VALUE << new Number(-10.0));
write(Number.MAX_VALUE << new Number(-10.1));
write(Number.MAX_VALUE << new Number(Number.MAX_VALUE));
write(Number.MAX_VALUE << new Number(Number.MIN_VALUE));
write(Number.MAX_VALUE << new Number(Number.NaN));
write(Number.MAX_VALUE << new Number(Number.POSITIVE_INFINITY));
write(Number.MAX_VALUE << new Number(Number.NEGATIVE_INFINITY));
write(Number.MAX_VALUE << '');
write(Number.MAX_VALUE << 0xa);
write(Number.MAX_VALUE << 04);
write(Number.MAX_VALUE << 'hello');
write(Number.MAX_VALUE << 'hel' + 'lo');
write(Number.MAX_VALUE << String(''));
write(Number.MAX_VALUE << String('hello'));
write(Number.MAX_VALUE << String('h' + 'ello'));
write(Number.MAX_VALUE << new String(''));
write(Number.MAX_VALUE << new String('hello'));
write(Number.MAX_VALUE << new String('he' + 'llo'));
write(Number.MAX_VALUE << new Object());
write(Number.MAX_VALUE << new Object());
write(Number.MAX_VALUE << [1, 2, 3]);
write(Number.MAX_VALUE << [1 ,2 , 3]);
write(Number.MAX_VALUE << new Array(3));
write(Number.MAX_VALUE << Array(3));
write(Number.MAX_VALUE << new Array(1 ,2 ,3));
write(Number.MAX_VALUE << Array(1));
write(Number.MAX_VALUE << foo);
write(Number.MIN_VALUE << undefined);
write(Number.MIN_VALUE << null);
write(Number.MIN_VALUE << true);
write(Number.MIN_VALUE << false);
write(Number.MIN_VALUE << Boolean(true));
write(Number.MIN_VALUE << Boolean(false));
write(Number.MIN_VALUE << new Boolean(true));
write(Number.MIN_VALUE << new Boolean(false));
write(Number.MIN_VALUE << NaN);
write(Number.MIN_VALUE << +0);
write(Number.MIN_VALUE << -0);
write(Number.MIN_VALUE << 0);
write(Number.MIN_VALUE << 0.0);
write(Number.MIN_VALUE << -0.0);
write(Number.MIN_VALUE << +0.0);
write(Number.MIN_VALUE << 1);
write(Number.MIN_VALUE << 10);
write(Number.MIN_VALUE << 10.0);
write(Number.MIN_VALUE << 10.1);
write(Number.MIN_VALUE << -1);
write(Number.MIN_VALUE << -10);
write(Number.MIN_VALUE << -10.0);
write(Number.MIN_VALUE << -10.1);
write(Number.MIN_VALUE << Number.MAX_VALUE);
write(Number.MIN_VALUE << Number.MIN_VALUE);
write(Number.MIN_VALUE << Number.NaN);
write(Number.MIN_VALUE << Number.POSITIVE_INFINITY);
write(Number.MIN_VALUE << Number.NEGATIVE_INFINITY);
write(Number.MIN_VALUE << new Number(NaN));
write(Number.MIN_VALUE << new Number(+0));
write(Number.MIN_VALUE << new Number(-0));
write(Number.MIN_VALUE << new Number(0));
write(Number.MIN_VALUE << new Number(0.0));
write(Number.MIN_VALUE << new Number(-0.0));
write(Number.MIN_VALUE << new Number(+0.0));
write(Number.MIN_VALUE << new Number(1));
write(Number.MIN_VALUE << new Number(10));
write(Number.MIN_VALUE << new Number(10.0));
write(Number.MIN_VALUE << new Number(10.1));
write(Number.MIN_VALUE << new Number(-1));
write(Number.MIN_VALUE << new Number(-10));
write(Number.MIN_VALUE << new Number(-10.0));
write(Number.MIN_VALUE << new Number(-10.1));
write(Number.MIN_VALUE << new Number(Number.MAX_VALUE));
write(Number.MIN_VALUE << new Number(Number.MIN_VALUE));
write(Number.MIN_VALUE << new Number(Number.NaN));
write(Number.MIN_VALUE << new Number(Number.POSITIVE_INFINITY));
write(Number.MIN_VALUE << new Number(Number.NEGATIVE_INFINITY));
write(Number.MIN_VALUE << '');
write(Number.MIN_VALUE << 0xa);
write(Number.MIN_VALUE << 04);
write(Number.MIN_VALUE << 'hello');
write(Number.MIN_VALUE << 'hel' + 'lo');
write(Number.MIN_VALUE << String(''));
write(Number.MIN_VALUE << String('hello'));
write(Number.MIN_VALUE << String('h' + 'ello'));
write(Number.MIN_VALUE << new String(''));
write(Number.MIN_VALUE << new String('hello'));
write(Number.MIN_VALUE << new String('he' + 'llo'));
write(Number.MIN_VALUE << new Object());
write(Number.MIN_VALUE << new Object());
write(Number.MIN_VALUE << [1, 2, 3]);
write(Number.MIN_VALUE << [1 ,2 , 3]);
write(Number.MIN_VALUE << new Array(3));
write(Number.MIN_VALUE << Array(3));
write(Number.MIN_VALUE << new Array(1 ,2 ,3));
write(Number.MIN_VALUE << Array(1));
write(Number.MIN_VALUE << foo);
write(Number.NaN << undefined);
write(Number.NaN << null);
write(Number.NaN << true);
write(Number.NaN << false);
write(Number.NaN << Boolean(true));
write(Number.NaN << Boolean(false));
write(Number.NaN << new Boolean(true));
write(Number.NaN << new Boolean(false));
write(Number.NaN << NaN);
write(Number.NaN << +0);
write(Number.NaN << -0);
write(Number.NaN << 0);
write(Number.NaN << 0.0);
write(Number.NaN << -0.0);
write(Number.NaN << +0.0);
write(Number.NaN << 1);
write(Number.NaN << 10);
write(Number.NaN << 10.0);
write(Number.NaN << 10.1);
write(Number.NaN << -1);
write(Number.NaN << -10);
write(Number.NaN << -10.0);
write(Number.NaN << -10.1);
write(Number.NaN << Number.MAX_VALUE);
write(Number.NaN << Number.MIN_VALUE);
write(Number.NaN << Number.NaN);
write(Number.NaN << Number.POSITIVE_INFINITY);
write(Number.NaN << Number.NEGATIVE_INFINITY);
write(Number.NaN << new Number(NaN));
write(Number.NaN << new Number(+0));
write(Number.NaN << new Number(-0));
write(Number.NaN << new Number(0));
write(Number.NaN << new Number(0.0));
write(Number.NaN << new Number(-0.0));
write(Number.NaN << new Number(+0.0));
write(Number.NaN << new Number(1));
write(Number.NaN << new Number(10));
write(Number.NaN << new Number(10.0));
write(Number.NaN << new Number(10.1));
write(Number.NaN << new Number(-1));
write(Number.NaN << new Number(-10));
write(Number.NaN << new Number(-10.0));
write(Number.NaN << new Number(-10.1));
write(Number.NaN << new Number(Number.MAX_VALUE));
write(Number.NaN << new Number(Number.MIN_VALUE));
write(Number.NaN << new Number(Number.NaN));
write(Number.NaN << new Number(Number.POSITIVE_INFINITY));
write(Number.NaN << new Number(Number.NEGATIVE_INFINITY));
write(Number.NaN << '');
write(Number.NaN << 0xa);
write(Number.NaN << 04);
write(Number.NaN << 'hello');
write(Number.NaN << 'hel' + 'lo');
write(Number.NaN << String(''));
write(Number.NaN << String('hello'));
write(Number.NaN << String('h' + 'ello'));
write(Number.NaN << new String(''));
write(Number.NaN << new String('hello'));
write(Number.NaN << new String('he' + 'llo'));
write(Number.NaN << new Object());
write(Number.NaN << new Object());
write(Number.NaN << [1, 2, 3]);
write(Number.NaN << [1 ,2 , 3]);
write(Number.NaN << new Array(3));
write(Number.NaN << Array(3));
write(Number.NaN << new Array(1 ,2 ,3));
write(Number.NaN << Array(1));
write(Number.NaN << foo);
write(Number.POSITIVE_INFINITY << undefined);
write(Number.POSITIVE_INFINITY << null);
write(Number.POSITIVE_INFINITY << true);
write(Number.POSITIVE_INFINITY << false);
write(Number.POSITIVE_INFINITY << Boolean(true));
write(Number.POSITIVE_INFINITY << Boolean(false));
write(Number.POSITIVE_INFINITY << new Boolean(true));
write(Number.POSITIVE_INFINITY << new Boolean(false));
write(Number.POSITIVE_INFINITY << NaN);
write(Number.POSITIVE_INFINITY << +0);
write(Number.POSITIVE_INFINITY << -0);
write(Number.POSITIVE_INFINITY << 0);
write(Number.POSITIVE_INFINITY << 0.0);
write(Number.POSITIVE_INFINITY << -0.0);
write(Number.POSITIVE_INFINITY << +0.0);
write(Number.POSITIVE_INFINITY << 1);
write(Number.POSITIVE_INFINITY << 10);
write(Number.POSITIVE_INFINITY << 10.0);
write(Number.POSITIVE_INFINITY << 10.1);
write(Number.POSITIVE_INFINITY << -1);
write(Number.POSITIVE_INFINITY << -10);
write(Number.POSITIVE_INFINITY << -10.0);
write(Number.POSITIVE_INFINITY << -10.1);
write(Number.POSITIVE_INFINITY << Number.MAX_VALUE);
write(Number.POSITIVE_INFINITY << Number.MIN_VALUE);
write(Number.POSITIVE_INFINITY << Number.NaN);
write(Number.POSITIVE_INFINITY << Number.POSITIVE_INFINITY);
write(Number.POSITIVE_INFINITY << Number.NEGATIVE_INFINITY);
write(Number.POSITIVE_INFINITY << new Number(NaN));
write(Number.POSITIVE_INFINITY << new Number(+0));
write(Number.POSITIVE_INFINITY << new Number(-0));
write(Number.POSITIVE_INFINITY << new Number(0));
write(Number.POSITIVE_INFINITY << new Number(0.0));
write(Number.POSITIVE_INFINITY << new Number(-0.0));
write(Number.POSITIVE_INFINITY << new Number(+0.0));
write(Number.POSITIVE_INFINITY << new Number(1));
write(Number.POSITIVE_INFINITY << new Number(10));
write(Number.POSITIVE_INFINITY << new Number(10.0));
write(Number.POSITIVE_INFINITY << new Number(10.1));
write(Number.POSITIVE_INFINITY << new Number(-1));
write(Number.POSITIVE_INFINITY << new Number(-10));
write(Number.POSITIVE_INFINITY << new Number(-10.0));
write(Number.POSITIVE_INFINITY << new Number(-10.1));
write(Number.POSITIVE_INFINITY << new Number(Number.MAX_VALUE));
write(Number.POSITIVE_INFINITY << new Number(Number.MIN_VALUE));
write(Number.POSITIVE_INFINITY << new Number(Number.NaN));
write(Number.POSITIVE_INFINITY << new Number(Number.POSITIVE_INFINITY));
write(Number.POSITIVE_INFINITY << new Number(Number.NEGATIVE_INFINITY));
write(Number.POSITIVE_INFINITY << '');
write(Number.POSITIVE_INFINITY << 0xa);
write(Number.POSITIVE_INFINITY << 04);
write(Number.POSITIVE_INFINITY << 'hello');
write(Number.POSITIVE_INFINITY << 'hel' + 'lo');
write(Number.POSITIVE_INFINITY << String(''));
write(Number.POSITIVE_INFINITY << String('hello'));
write(Number.POSITIVE_INFINITY << String('h' + 'ello'));
write(Number.POSITIVE_INFINITY << new String(''));
write(Number.POSITIVE_INFINITY << new String('hello'));
write(Number.POSITIVE_INFINITY << new String('he' + 'llo'));
write(Number.POSITIVE_INFINITY << new Object());
write(Number.POSITIVE_INFINITY << new Object());
write(Number.POSITIVE_INFINITY << [1, 2, 3]);
write(Number.POSITIVE_INFINITY << [1 ,2 , 3]);
write(Number.POSITIVE_INFINITY << new Array(3));
write(Number.POSITIVE_INFINITY << Array(3));
write(Number.POSITIVE_INFINITY << new Array(1 ,2 ,3));
write(Number.POSITIVE_INFINITY << Array(1));
write(Number.POSITIVE_INFINITY << foo);
write(Number.NEGATIVE_INFINITY << undefined);
write(Number.NEGATIVE_INFINITY << null);
write(Number.NEGATIVE_INFINITY << true);
write(Number.NEGATIVE_INFINITY << false);
write(Number.NEGATIVE_INFINITY << Boolean(true));
write(Number.NEGATIVE_INFINITY << Boolean(false));
write(Number.NEGATIVE_INFINITY << new Boolean(true));
write(Number.NEGATIVE_INFINITY << new Boolean(false));
write(Number.NEGATIVE_INFINITY << NaN);
write(Number.NEGATIVE_INFINITY << +0);
write(Number.NEGATIVE_INFINITY << -0);
write(Number.NEGATIVE_INFINITY << 0);
write(Number.NEGATIVE_INFINITY << 0.0);
write(Number.NEGATIVE_INFINITY << -0.0);
write(Number.NEGATIVE_INFINITY << +0.0);
write(Number.NEGATIVE_INFINITY << 1);
write(Number.NEGATIVE_INFINITY << 10);
write(Number.NEGATIVE_INFINITY << 10.0);
write(Number.NEGATIVE_INFINITY << 10.1);
write(Number.NEGATIVE_INFINITY << -1);
write(Number.NEGATIVE_INFINITY << -10);
write(Number.NEGATIVE_INFINITY << -10.0);
write(Number.NEGATIVE_INFINITY << -10.1);
write(Number.NEGATIVE_INFINITY << Number.MAX_VALUE);
write(Number.NEGATIVE_INFINITY << Number.MIN_VALUE);
write(Number.NEGATIVE_INFINITY << Number.NaN);
write(Number.NEGATIVE_INFINITY << Number.POSITIVE_INFINITY);
write(Number.NEGATIVE_INFINITY << Number.NEGATIVE_INFINITY);
write(Number.NEGATIVE_INFINITY << new Number(NaN));
write(Number.NEGATIVE_INFINITY << new Number(+0));
write(Number.NEGATIVE_INFINITY << new Number(-0));
write(Number.NEGATIVE_INFINITY << new Number(0));
write(Number.NEGATIVE_INFINITY << new Number(0.0));
write(Number.NEGATIVE_INFINITY << new Number(-0.0));
write(Number.NEGATIVE_INFINITY << new Number(+0.0));
write(Number.NEGATIVE_INFINITY << new Number(1));
write(Number.NEGATIVE_INFINITY << new Number(10));
write(Number.NEGATIVE_INFINITY << new Number(10.0));
write(Number.NEGATIVE_INFINITY << new Number(10.1));
write(Number.NEGATIVE_INFINITY << new Number(-1));
write(Number.NEGATIVE_INFINITY << new Number(-10));
write(Number.NEGATIVE_INFINITY << new Number(-10.0));
write(Number.NEGATIVE_INFINITY << new Number(-10.1));
write(Number.NEGATIVE_INFINITY << new Number(Number.MAX_VALUE));
write(Number.NEGATIVE_INFINITY << new Number(Number.MIN_VALUE));
write(Number.NEGATIVE_INFINITY << new Number(Number.NaN));
write(Number.NEGATIVE_INFINITY << new Number(Number.POSITIVE_INFINITY));
write(Number.NEGATIVE_INFINITY << new Number(Number.NEGATIVE_INFINITY));
write(Number.NEGATIVE_INFINITY << '');
write(Number.NEGATIVE_INFINITY << 0xa);
write(Number.NEGATIVE_INFINITY << 04);
write(Number.NEGATIVE_INFINITY << 'hello');
write(Number.NEGATIVE_INFINITY << 'hel' + 'lo');
write(Number.NEGATIVE_INFINITY << String(''));
write(Number.NEGATIVE_INFINITY << String('hello'));
write(Number.NEGATIVE_INFINITY << String('h' + 'ello'));
write(Number.NEGATIVE_INFINITY << new String(''));
write(Number.NEGATIVE_INFINITY << new String('hello'));
write(Number.NEGATIVE_INFINITY << new String('he' + 'llo'));
write(Number.NEGATIVE_INFINITY << new Object());
write(Number.NEGATIVE_INFINITY << new Object());
write(Number.NEGATIVE_INFINITY << [1, 2, 3]);
write(Number.NEGATIVE_INFINITY << [1 ,2 , 3]);
write(Number.NEGATIVE_INFINITY << new Array(3));
write(Number.NEGATIVE_INFINITY << Array(3));
write(Number.NEGATIVE_INFINITY << new Array(1 ,2 ,3));
write(Number.NEGATIVE_INFINITY << Array(1));
write(Number.NEGATIVE_INFINITY << foo);
write(new Number(NaN) << undefined);
write(new Number(NaN) << null);
write(new Number(NaN) << true);
write(new Number(NaN) << false);
write(new Number(NaN) << Boolean(true));
write(new Number(NaN) << Boolean(false));
write(new Number(NaN) << new Boolean(true));
write(new Number(NaN) << new Boolean(false));
write(new Number(NaN) << NaN);
write(new Number(NaN) << +0);
write(new Number(NaN) << -0);
write(new Number(NaN) << 0);
write(new Number(NaN) << 0.0);
write(new Number(NaN) << -0.0);
write(new Number(NaN) << +0.0);
write(new Number(NaN) << 1);
write(new Number(NaN) << 10);
write(new Number(NaN) << 10.0);
write(new Number(NaN) << 10.1);
write(new Number(NaN) << -1);
write(new Number(NaN) << -10);
write(new Number(NaN) << -10.0);
write(new Number(NaN) << -10.1);
write(new Number(NaN) << Number.MAX_VALUE);
write(new Number(NaN) << Number.MIN_VALUE);
write(new Number(NaN) << Number.NaN);
write(new Number(NaN) << Number.POSITIVE_INFINITY);
write(new Number(NaN) << Number.NEGATIVE_INFINITY);
write(new Number(NaN) << new Number(NaN));
write(new Number(NaN) << new Number(+0));
write(new Number(NaN) << new Number(-0));
write(new Number(NaN) << new Number(0));
write(new Number(NaN) << new Number(0.0));
write(new Number(NaN) << new Number(-0.0));
write(new Number(NaN) << new Number(+0.0));
write(new Number(NaN) << new Number(1));
write(new Number(NaN) << new Number(10));
write(new Number(NaN) << new Number(10.0));
write(new Number(NaN) << new Number(10.1));
write(new Number(NaN) << new Number(-1));
write(new Number(NaN) << new Number(-10));
write(new Number(NaN) << new Number(-10.0));
write(new Number(NaN) << new Number(-10.1));
write(new Number(NaN) << new Number(Number.MAX_VALUE));
write(new Number(NaN) << new Number(Number.MIN_VALUE));
write(new Number(NaN) << new Number(Number.NaN));
write(new Number(NaN) << new Number(Number.POSITIVE_INFINITY));
write(new Number(NaN) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(NaN) << '');
write(new Number(NaN) << 0xa);
write(new Number(NaN) << 04);
write(new Number(NaN) << 'hello');
write(new Number(NaN) << 'hel' + 'lo');
write(new Number(NaN) << String(''));
write(new Number(NaN) << String('hello'));
write(new Number(NaN) << String('h' + 'ello'));
write(new Number(NaN) << new String(''));
write(new Number(NaN) << new String('hello'));
write(new Number(NaN) << new String('he' + 'llo'));
write(new Number(NaN) << new Object());
write(new Number(NaN) << new Object());
write(new Number(NaN) << [1, 2, 3]);
write(new Number(NaN) << [1 ,2 , 3]);
write(new Number(NaN) << new Array(3));
write(new Number(NaN) << Array(3));
write(new Number(NaN) << new Array(1 ,2 ,3));
write(new Number(NaN) << Array(1));
write(new Number(NaN) << foo);
write(new Number(+0) << undefined);
write(new Number(+0) << null);
write(new Number(+0) << true);
write(new Number(+0) << false);
write(new Number(+0) << Boolean(true));
write(new Number(+0) << Boolean(false));
write(new Number(+0) << new Boolean(true));
write(new Number(+0) << new Boolean(false));
write(new Number(+0) << NaN);
write(new Number(+0) << +0);
write(new Number(+0) << -0);
write(new Number(+0) << 0);
write(new Number(+0) << 0.0);
write(new Number(+0) << -0.0);
write(new Number(+0) << +0.0);
write(new Number(+0) << 1);
write(new Number(+0) << 10);
write(new Number(+0) << 10.0);
write(new Number(+0) << 10.1);
write(new Number(+0) << -1);
write(new Number(+0) << -10);
write(new Number(+0) << -10.0);
write(new Number(+0) << -10.1);
write(new Number(+0) << Number.MAX_VALUE);
write(new Number(+0) << Number.MIN_VALUE);
write(new Number(+0) << Number.NaN);
write(new Number(+0) << Number.POSITIVE_INFINITY);
write(new Number(+0) << Number.NEGATIVE_INFINITY);
write(new Number(+0) << new Number(NaN));
